package com.wiscamp.ninechapters.problems.application.dto.commands.problems;


import com.wiscamp.ninechapters.ddd.DataTransferObject;
import com.wiscamp.ninechapters.problems.enums.Actions;
import lombok.Data;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 更新问题DTO对象
 */
@Data
public class UpdateQuestionDto implements DataTransferObject {
    /**
     * 问题类型编号（不可空）
     * 简单题和复合题不用填写
     */
    private long questionTypeId = 0;

    /**
     * 问题编号
     */
    private long questionId = 0;

    /**
     * 问题超文本 （不可空）
     */
    private String questionHypertext = "";

    /**
     * 解题思路Dto （可空）
     */
    private Collection<UpdateSolutionDto> solutions = new ArrayList<>();

    /**
     * 难度值
     */
    private int difficulty = 0;

    private double questionScore = 0;

    /**
     * 是否需要提交解题步骤
     */
    private boolean needSteps = false;

    /**
     * 问题是否包含选项
     */
    //private boolean hasOptions = false;

    /**
     * 问题是否包含多个答案
     */
    //private boolean hasMultipleAnswers = false;

    /**
     * 问题选项列表，hasOptions为true时非空
     */
    private Collection<UpdateOptionDto> options = new ArrayList<>();

    /**
     * 问题答案列表，hasOptions为true时为空，正确答案信息从options中获取
     */
    private Collection<UpdateAnswerDto> answers = new ArrayList<>();

    /**
     * 答案操作类型 （不可空）
     */
    private Actions action = Actions.NONE;
}
